spring

您所在的位置:网站首页 maven 插件原理 spring

spring

2024-07-06 19:39| 来源: 网络整理| 查看: 265

SpringBoot 插件 spring-boot-maven-plugin 原理,以及SpringBoo工程部署的 jar 包瘦身实战

关于原理上面这篇文章写得很详细

Maven基本操作详解

关于Maven详细可以看这篇

1、mvn命令      目录的target目录保存编译后的文件 命令功能mvn clean清除target目录(编译的文件,即xxx.class文件)mvn complie 编译src\main\java,生成target目录(xxx.java->xxx.class)mvn test 执行第2命令,编译测试项目和项目,在target目录下多生成test-classes目录mvn package 执行第2-3条命令,并打包项目,打成war还是jar要看pom.xml的packgeing标签mvn install执行第2-第4条命令,并且在把项目jar包安装在本地仓库mvn deploy 执行第2-第5条命令,发布项目

2、maven的概念模型

(1)第一部分项目的坐标和自身的相关信息(2)第二部分,配置项目运行所依赖的jar包(3)第三部分,配置项目运行环境所需要的插件

1. pom.xml:

标签信息dependencies标签之前的信息项目自身信息dependencies标签内运行时所依赖的jar包信息build标签内

项目运行环境信息,比如jdk,tomcat

2. 依赖管理模型: 放置的都是jar包坐标:

标签信息groupId公司组织的名称artifactId项目名version版本号scope作用域,常用于解决jar包冲突问题

3.plug.in: 在maven的默认生命周期里,调用的构建命令都由maven的plug in插件去实现,达到一键构建的效果。

3、自我理解:

maven是一个服务于Java台的自动化工具。自动化在哪里呢?

(测试、部署、编译、打包、管理包)

1、以前我们需要什么工具就要往项目导入对应的jar包。这种情况下如果是多人开发,就会导致项目整合后会有大量重复的jar包,使得项目变得臃肿重复。而Maven提供一个中央仓库,把各类工具包都放在了中央仓库。整合之后直接从仓库拉去就好

2、提供一键化的清除打包上传功能,但是它默认的打包功能(maven package)是不会将项目所依赖的jar包一同打包的。可以去看看打包的jar里面有没有lib目录,这个目录里面就是存放依赖包的。    意思是如果B项目需要A.jar包才能跑起来,而C项目需要B项目才能跑,你在用它自带的maven package打包B项目的时候,B.jar里面是没有A.jar的。所以把B.jar给C项目也没用,根本跑步起来。

这时候就要用到maven的打包插件了(spring-boot-maven-plugin),然后就直接maven package会将所需要的依赖导入jar包里了(lib里面),同时生成jar.original原始jar包,即不包含任何所需要的依赖。

注意:如果你的项目没有继承spring-boot-starter-parent 这个POM,你需要做如下配置,将目标绑定到repackage。

org.springframework.boot spring-boot-maven-plugin repackage

这里是我打包项目时遇到的Bug



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3